#ifndef REDIS_CLIENT_H
#define REDIS_CLIENT_H
#include <hiredis/hiredis.h>
#include <string>
#include <vector>

class RedisCache {
public:
    RedisCache();
    ~RedisCache(); // 需要添加析构函数
    
    bool connect(const std::string& host = "127.0.0.1", int port = 6379);
    bool set(const std::string& key, const std::string& value);
    bool get(const std::string& key, std::string& value);
    bool expire(const std::string& key, int seconds);
    
    // 添加其他常用命令的封装
    bool del(const std::string& key);
    bool exists(const std::string& key);
    bool hset(const std::string& key, const std::string& field, const std::string& value);
    bool hget(const std::string& key, const std::string& field, std::string& value);
    
    // 列表操作方法
    bool lpush(const std::string& key, const std::string& value);
    bool rpush(const std::string& key, const std::string& value);
    bool lrange(const std::string& key, int start, int stop, std::vector<std::string>& values);
    
private:
    redisContext* context_;
    
    // 禁用拷贝构造和赋值操作
    RedisCache(const RedisCache&) = delete;
    RedisCache& operator=(const RedisCache&) = delete;
};

#endif // REDIS_CLIENT_H